2010-01-16 78 views
1

我想用我在web.config中定義的用戶名和密碼使用表單身份驗證來保護我的網站的一部分。當我嘗試登錄時,我會看到下面的消息。使用沒有.Net提供程序的Forms身份驗證

Server Error in '/' Application. 

Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. 

我猜這是因爲它試圖使用由LocalSqlServer連接字符串定義的Membership表。 我不想使用會員功能,我該如何配置我的web應用程序來做到這一點?

我是否需要爲內置登錄控件自己編寫Authenticate函數?

+0

嗨,你已經使用過asp.net SQL Server安裝工具嗎? http://weblogs.asp.net/scottgu/archive/2005/08/25/423703.aspx – keyboardP 2010-01-16 15:47:45

+0

這正是我不想使用的。讓我重新迭代,我不想使用Membership特性。 – 2010-01-17 16:55:02

+0

另一個非常類似的問題與不同的答案:http://stackoverflow.com/questions/1583262/asp-net-authentication-use-credentials-from-web-config-problem – Greg 2010-01-29 16:21:47

回答

1

的問題不在於你的配置文件,它是一個與登錄控制。

Login控件使用machine.config中定義的默認成員資格提供程序。 (這是一個指向SQL Express數據庫的SqlMembershipProvider)。

您根本不想使用默認的成員資格提供程序。只需創建自己的登錄頁面,並使用以下服務器端邏輯來驗證憑據並將用戶登錄到該站點:

if(Page.IsValid) 
     if (FormsAuthentication.Authenticate(txtName.Text,txtPassword.Text)) 
      FormsAuthentication.RedirectFromLoginPage(txtName.Text, false); 
     else 
      lblMsg1.Text = "Wrong name or password. Please try again."; 
0

試試這個:

<authentication mode="Forms"> 
    <forms loginUrl="Login.aspx"> 
    <credentials> 
     <user name="Joe" password="Smith" /> 
    </credentials> 
    </forms> 
</authentication> 
+0

我知道這一點,這個設置已經。即使我已經按照您所描述的方式定義了我的配置,但我的應用程序試圖訪問SQL。 – 2010-01-17 16:53:44

+0

你的.config會員資格條目怎麼樣? – 2010-01-17 19:21:23

+0

我沒有在我的web.config中定義的成員資格條目 – 2010-01-18 03:23:18

相關問題