簡體   English   中英

vb.net中的登錄頁面幫助

[英]Help with Login Page in vb.net

我是.NET的新手,一直在搜索此問題,但沒有運氣。 我已經創建了一個登錄頁面,其中包含用戶ID和密碼。 在我的webconfig中,我輸入以下代碼來拒絕未經身份驗證的用戶。

 <authentication mode="Forms">
  <forms loginUrl="Login.aspx" timeout="10" protection="All" />
 </authentication>

 <authorization>
   <deny users="?"></deny>      
 </authorization>

我要完成的工作是,當用戶輸入正確的信息時,我想在cookie中存儲有關用戶的少量信息,例如是否有管理員,管理員,用戶等信息。這里是代碼當用戶單擊“提交”按鈕時發生。 問題是用戶輸入正確的信息后,該頁面不會重定向到該頁面。 任何幫助將不勝感激。

   If txtPassword.Text.ToLower = "test" Then

        'Create a cookie
        Dim cookie As New HttpCookie("UserInfo")

        'Cookie variables
        cookie("User") = txtUser.Text
        cookie("UserGroup") = "Admin"

        'Add Cookies to current web responses
        Response.Cookies.Add(cookie)

        Response.Redirect("login_successful.aspx")
        'FormsAuthentication.RedirectToLoginPage("login_successful.aspx")
    Else
        lblResult.Text = "Incorrect Password"
    End If

我不建議使用Cookie來存儲角色信息。 使用內置提供程序之一來完成此任務。 例如,嘗試這個。

打開Visual Studio或Visual Studio Express,然后創建一個新的“ ASP.NET Web應用程序”。 您會注意到,它包括一個“帳戶”目錄,其中包含有關如何使用內置提供程序的示例。 您必須使用正確的表,角色,存儲過程等來設置數據庫,才能使用內置提供程序,但這很容易。 如果您已安裝.NET 4.0,則該程序會將數據庫設置為使用內置提供程序,該程序稱為aspnet_regsql.exe,通常位於以下位置:

C:\\ WINDOWS \\ Microsoft.NET \\框架\\ v4.0.30319 \\ aspnet_regsql.exe的

然后,要解決您的登錄問題,可以使用Login控件,並使用Login.DestinationPageUrl屬性將用戶重定向到登錄后所需的頁面。

即使您不使用內置提供程序,這也會使您更好地了解如何在網頁中實現角色。

我想在重定向之前,您必須先通過調用FormsAuthentication.SetAuthCookie方法來設置身份驗證Cookie。 是的,請考慮一下有關joel coehoorn的cookie的有關保存信息的評論。

而不是使用cookie來存儲該信息(可以被黑),您應該將Roles存儲在ASPNetRoles表中,並在創建用戶時將其與用戶相關聯。 您可以使用以下代碼檢查角色:

If (Roles.IsUserInRole("rolename")) Then
   'Do something useful
End If

至於重定向,它包含在什么事件處理程序中?

你可以嘗試這兩個嗎?

1)webconfig可能需要引用cookie名稱

<forms name="UserInfo" ...

2)Webconfig也可能需要告知誰允許

<authorzation>
    <allow user="Admin" />
    <deny...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM