3

我正在尝试设置登录控件以记住以前成功输入用户名和密码的用户的登录凭据。我将记住我的属性设置为 true,但它似乎不会触发任何我可以读取 cookie 并自动登录用户的事件。

有没有一种简单的机制来实现这一点?

4

1 回答 1

5

您需要在 ASP.NET 2.0 中使用 Google 进行表单身份验证

您将需要设置您的应用程序(通过 web.config),并且可能还需要更改 IIS 设置。虽然这一切都非常简单,但可以使用大量设置,因此最好阅读一些文章。ScottGu 有一个 博客条目,其中包含很多很好的细节。

www.asp.net上也有很多不错的视频,包括这些安全教程

尝试如何:创建 ASP.NET 登录页面演练:创建具有成员资格和用户登录的网站。如果我记得,除非您使用 Sql Server Membership 提供程序,否则您仍然必须自己进行身份验证。在这种情况下,您仍然需要设置数据库和 web.config。


本质上,一旦您正确设置了配置,您就有了一个登录页面。在该登录页面中,您告诉 Forms Authentication 在您对其进行身份验证后为您创建身份验证

if (VerifyUser(name, password) ) // this is not a framework method
    FormsAuthentication.RedirectFromLoginPage(
        userName, false); // no persistent cookie

如果您想读取身份验证票证数据(从其他任何地方)。

// output just writes to a StringBuilder 'sb' 
output(sb, "Identity.AuthenticationType", Page.User.Identity.AuthenticationType);

FormsIdentity fi = Page.User.Identity as FormsIdentity;
if (fi == null)
{
    output(sb, "Identity Type", Page.User.Identity.ToString());
    return;
}

output(sb, "FormsIdentity.Ticket.IssueDate", fi.Ticket.IssueDate);
output(sb, "FormsIdentity.Ticket.Expiration", fi.Ticket.Expiration);
output(sb, "FormsIdentity.Ticket.Name", fi.Ticket.Name);
output(sb, "FormsIdentity.Ticket.CookiePath", fi.Ticket.CookiePath);
output(sb, "FormsIdentity.Ticket.UserData", fi.Ticket.UserData);
output(sb, "FormsIdentity.Ticket.Version", fi.Ticket.Version);
output(sb, "FormsIdentity.Ticket.IsPersistent", fi.Ticket.IsPersistent);

关键是,一旦通过身份验证,asp.net 只会在身份验证票已过期且用户位于受保护页面上时将用户重定向到登录页面。Asp.net 不会一直要求您对用户进行不必要的身份验证。

于 2008-10-03T01:36:27.973 回答