1. เราไม่มีเซิร์ฟเวอร์จริง เราแค่เช่าพื้นที่ .net2.0 + SQLserver และชื่อฐานข้อมูล SQL ได้รับการแก้ไขแล้ว
2. เป็นไปไม่ได้ที่ผู้ให้บริการพื้นที่จะตั้งค่าแหล่งข้อมูลให้เราหรือให้สิทธิ์ฐานข้อมูล aspnetdb แก่คุณ
3. เราไม่มีสิทธิ์ WindowsMicrosoft.NetFrameworkv2.xConfig บนเซิร์ฟเวอร์
เมื่อทราบสามประเด็นข้างต้นแล้ว หากคุณถ่ายโอนโปรเจ็กต์ที่ทดสอบในเครื่องไปยังเซิร์ฟเวอร์โดยตรง จะมีข้อผิดพลาดเกิดขึ้นอย่างแน่นอน (เพราะมันเรียก WindowsMicrosoft.NetFrameworkv2.xConfig ตามค่าเริ่มต้น) วิธีแก้ไขคือ หลังจากนำเข้าเนื้อหาฐานข้อมูล aspnetdb ทั้งหมดไปยังฐานข้อมูล SQL ระยะไกลของคุณเองแล้ว ให้กำหนดสตริงการเชื่อมต่อฐานข้อมูล web.config ของโครงการ
เว็บ.config
<?xml version="1.0"?>
<!--
หมายเหตุ: แทนที่จะแก้ไขไฟล์นี้ด้วยตนเอง คุณสามารถใช้ได้
เครื่องมือการจัดการเว็บเพื่อกำหนดการตั้งค่าของแอปพลิเคชัน คุณสามารถใช้
"เว็บไซต์" -> ตัวเลือก "การกำหนดค่า Asp.Net"
รายการการตั้งค่าและคำอธิบายประกอบทั้งหมดอยู่ที่
machine.config.comments ซึ่งโดยปกติจะอยู่ใน
WindowsMicrosoft.NetFrameworkv2.xConfig
-
<การกำหนดค่า xmlns=" http://schemas.microsoft.com/.NetConfiguration/v2.0 ">
<connectionStrings>
<!--กำหนดการเชื่อมต่อฐานข้อมูล-->
<add name="DbName" ConnectionString="Persist Security Info=False;server=127.0.0.1;database=aspnetdb;uid=sa;pwd=123;pooling=true"/>
</connectionStrings>
<การตั้งค่าแอป>
</การตั้งค่าแอป>
<system.web>
-
การเชื่อมต่อฐานข้อมูล ConnectionStringName สิ่งนี้จะต้องตั้งค่าใน web.config
EnablePasswordRetrieval รับค่าที่ระบุว่าผู้ให้บริการสมาชิกปัจจุบันได้รับการกำหนดค่าเพื่อให้ผู้ใช้สามารถดึงรหัสผ่านของตนได้หรือไม่
EnablePasswordReset รับค่าที่ระบุว่าผู้ให้บริการสมาชิกปัจจุบันได้รับการกำหนดค่าเพื่อให้ผู้ใช้สามารถรีเซ็ตรหัสผ่านของตนได้หรือไม่
needQuestionAndAnswer รับค่าที่ระบุว่าผู้ให้บริการสมาชิกดีฟอลต์ต้องการให้ผู้ใช้ตอบคำถามรหัสผ่านสำหรับการรีเซ็ตรหัสผ่านและการเรียกค้นหรือไม่
applicationName รับหรือตั้งชื่อของแอปพลิเคชัน
needUniqueEmail ระบุว่าผู้ใช้ต้องระบุค่าที่อยู่อีเมลที่ไม่ซ้ำกันเมื่อสร้างผู้ใช้หรือไม่
รูปแบบรหัสผ่าน ระบุรูปแบบที่รหัสผ่านถูกเก็บไว้ในที่เก็บข้อมูลสมาชิก คำแนะนำโดยละเอียดด้านล่าง
maxInvalidPasswordAttempts รับจำนวนรหัสผ่านที่ไม่ถูกต้องหรือความพยายามตอบรหัสผ่านไม่ถูกต้องที่อนุญาตก่อนที่ผู้ใช้จะถูกล็อคออกจากการเป็นสมาชิก
minRequiredPasswordLength รับความยาวขั้นต่ำที่จำเป็นสำหรับรหัสผ่าน
minRequiredNonalphanumericCharacters รับจำนวนอักขระพิเศษขั้นต่ำที่ต้องรวมไว้ในรหัสผ่านที่ถูกต้อง
passwordAttemptWindow รับจำนวนสูงสุดของรหัสผ่านที่ไม่ถูกต้องหรือการพยายามตอบรหัสผ่านที่ไม่ถูกต้องที่อนุญาตก่อนที่ผู้ใช้ที่เป็นสมาชิกจะถูกล็อคออกในหน่วยนาที
คำอธิบายโดยละเอียดของรูปแบบรหัสผ่าน
คุณสมบัติที่ระบุรูปแบบการจัดเก็บรหัสผ่าน รหัสผ่านสามารถจัดเก็บในรูปแบบรหัสผ่านที่ชัดเจน เข้ารหัส และแฮช รหัสผ่านที่ชัดเจนจะถูกจัดเก็บไว้ในข้อความที่ชัดเจน ซึ่งช่วยปรับปรุงประสิทธิภาพในการจัดเก็บและเรียกค้นรหัสผ่าน แต่มีความปลอดภัยน้อยกว่าและสามารถอ่านได้ง่ายเมื่อความปลอดภัยของแหล่งข้อมูลถูกบุกรุก รหัสผ่านที่เข้ารหัสจะถูกเข้ารหัสเมื่อจัดเก็บและสามารถถอดรหัสได้เมื่อเปรียบเทียบหรือดึงรหัสผ่าน รหัสผ่านดังกล่าวจำเป็นต้องมีการประมวลผลเพิ่มเติมระหว่างการจัดเก็บและการเรียกค้น แต่มีความปลอดภัยมากกว่าและไม่สามารถเรียกคืนได้ง่ายเมื่อความปลอดภัยของแหล่งข้อมูลถูกบุกรุก รหัสผ่านที่แฮชจะถูกแฮชโดยใช้อัลกอริธึมการแฮชทางเดียวและค่าเกลือที่สร้างขึ้นแบบสุ่มเมื่อจัดเก็บไว้ในฐานข้อมูล เมื่อรหัสผ่านได้รับการตรวจสอบแล้ว รหัสผ่านจะถูกแฮชด้วยค่าเกลือในฐานข้อมูลสำหรับการตรวจสอบ ไม่สามารถดึงรหัสผ่านที่แฮชได้
-
<roleManager ที่เปิดใช้งาน = "true" />
<สมาชิก>
<ผู้ให้บริการ>
< เอาชื่อ = "AspNetSqlMembershipProvider"/>
<เพิ่มชื่อ = "AspNetSqlMembershipProvider"
ชนิด = " System.Web.Security.SqlMembershipProvider, System.Web, เวอร์ชัน = 2.0.0.0, วัฒนธรรม =เป็นกลาง, PublicKeyToken = b03f5f7f11d50a3a"
การเชื่อมต่อ StringName = "DbName"
เปิดใช้งานการดึงรหัสผ่าน = "false"
เปิดใช้งานรหัสผ่านรีเซ็ต = "จริง"
ต้องการคำถามและคำตอบ = "จริง"
ชื่อใบสมัคร = "/"
ต้องการUniqueEmail = "false"
รูปแบบรหัสผ่าน = "แฮช"
maxInvalidPasswordAttempts = "5"
minRequiredPasswordLength = "6"
minRequiredNonalphanumericCharacters = "0"
รหัสผ่าน AttemptWindow = "10"
รหัสผ่านStrengthRegularExpression="" />
</ผู้ให้บริการ>
</สมาชิกภาพ>
-
ตั้งค่าการคอมไพล์ debug="true" เพื่อแทรกสัญลักษณ์การดีบัก
ในหน้าที่เรียบเรียง แต่เนื่องจากสิ่งนี้จะ
ส่งผลต่อประสิทธิภาพ ดังนั้นควรตั้งค่าระหว่างการพัฒนาเท่านั้น
ค่านี้
ตัวเลือก Visual Basic:
การตั้งค่า strict="true" จะปิดใช้งานทั้งหมด
การแปลงประเภทข้อมูลสูญหาย
การตั้งค่าชัดแจ้ง = "true" จะบังคับให้มีการประกาศตัวแปรทั้งหมด
-
<คอมไพล์ดีบัก = "true" เข้มงวด = "false" ชัดเจน = "true"/>
<หน้า>
<เนมสเปซ>
<ชัดเจน/>
<เพิ่มเนมสเปซ = "ระบบ"/>
<เพิ่ม namespace="System.Collections"/>
<เพิ่ม namespace="System.Collections.Specialized"/>
<เพิ่มเนมสเปซ = "System.Configuration"/>
<เพิ่มเนมสเปซ = "System.Text"/>
<เพิ่ม namespace="System.Text.RegularExpressions"/>
<เพิ่มเนมสเปซ = "System.Web"/>
<เพิ่ม namespace="System.Web.Caching"/>
<เพิ่ม namespace="System.Web.SessionState"/>
<เพิ่ม namespace="System.Web.Security"/>
<เพิ่ม namespace="System.Web.Profile"/>
<เพิ่ม namespace="System.Web.UI"/>
<เพิ่ม namespace="System.Web.UI.WebControls"/>
<เพิ่ม namespace="System.Web.UI.WebControls.WebParts"/>
<เพิ่ม namespace="System.Web.UI.HtmlControls"/>
</เนมสเปซ>
</หน้า>
-
ส่วน <authentication> ช่วยให้คุณสามารถกำหนดค่า
โหมดการรับรองความถูกต้องที่ปลอดภัย
เพื่อระบุผู้ใช้ที่เข้ามา
-
<โหมดการรับรองความถูกต้อง = "แบบฟอร์ม" />
-
หากเกิดข้อผิดพลาดที่ไม่สามารถจัดการได้ขณะดำเนินการตามคำขอ
ขั้นตอนการประมวลผลที่เกี่ยวข้องสามารถกำหนดค่าได้ผ่านทางส่วน <customErrors> โดยเฉพาะ
นักพัฒนาสามารถกำหนดค่าส่วนนี้ได้
หน้าข้อผิดพลาด html ที่จะแสดง
เพื่อแทนที่การติดตามสแต็กข้อผิดพลาด
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<สถานะข้อผิดพลาด = "403" เปลี่ยนเส้นทาง = "NoAccess.htm" / >
<สถานะข้อผิดพลาด = "404" เปลี่ยนเส้นทาง = "FileNotFound.htm" />
</ข้อผิดพลาดแบบกำหนดเอง>
-
</system.เว็บ>
</configuration>
หมายเหตุ: ความคิดเห็นบนโหนดสมาชิกถูกสร้างขึ้นใหม่ ฉันลืมที่อยู่
http://lcx.cnblogs.com/archive/2006/06/29/438836.html