从登录控制获取信息

时间:2013-04-30 13:45:47

标签: c# asp.net asp.net-membership

我是学生为我的学位写作项目,我正在努力了解asp.net会员和用户管理。

我读过很多文章,有些文章很方便,但有些文章让我很困惑。 看完之后:Examining ASP.NET's Membership, Roles, and Profile

我定义了一个SqlMembershipProvider,它在我的sql server中为我创建了用户数据库。 然后我从.net的管理工具中定义了一些用户,并在我的aspx页面中添加了一个登录控件。

我的问题是:

  • 控件在哪里保存有关用户登录的信息? 以及如何访问它?

  • 如何自定义登录功能,验证用户和 将他重定向到另一页?

  • 如何在新页面中使用loginstatus控件进行显示 有关登录或匿名的不同用户的信息?

  • 我想将某些页面限制为某些用户,并进行构建 基于不同用户的动态页面。我需要定义角色吗? 检查用户角色?

  • 我可以使用哪些会员功能来帮助我管理用户和角色?

定义提供程序和连接字符串后的配置文件:

<configuration>
    <connectionStrings>
        <add name="igroup20_test2ConnectionString" connectionString="Data Source=Media.ruppin.ac.il;Initial Catalog=igroup20_test2;User ID=igroup20;Password=********" providerName="System.Data.SqlClient"/>
    </connectionStrings>
    <system.web>
        <authentication mode="Forms"/>
        <compilation debug="true" targetFramework="4.0"/>
        <membership defaultProvider="CustomizedProvider">
            <providers>
                <add name="CustomizedProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="igroup20_test2ConnectionString" applicationName="ScottsProject" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0"/>
            </providers>
        </membership>
    </system.web>
</configuration>

这些是提供程序在ms sql server中创建的表:

aspnet_Applications
aspnet_Membership
aspnet_Paths
aspnet_PersonalizationAllUsers
aspnet_PersonalizationPerUser
aspnet_Profile
aspnet_Roles
aspnet_SchemaVersions
aspnet_Users
aspnet_UsersInRoles
aspnet_WebEvent_Events

我真的很赞赏你的答案:)

1 个答案:

答案 0 :(得分:2)

  

控件在哪里保存有关用户登录的信息?   以及如何访问它?

您可能在这里,登录控件保存凭据信息并让该用户登录并查看安全页面。所有信息都以加密方式存储在登录cookie中。它只在最后一次登录时保存在数据库上,并在总计数器上保存失败。

您可以通过以下方式阅读:

var authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];
  

我想将某些页面限制为某些用户,并进行构建   基于不同用户的动态页面。我需要定义角色吗?   检查用户角色?

是的,这是你必须做的。

  

如何自己定义登录功能,验证用户和   将他重定向到另一页?

在这里,您可以使用登录控件来使用OnLoggingIn="OnLogginIn"干扰登录过程,并返回e.Cancel = true;取消登录,或者返回true以继续登录。

或者您可以创建新的凭据Cookie,例如:How can I manually create a authentication cookie instead of the default method?

  

我还可以使用哪些会员功能来帮助我管理用户和   角色?

从您知道登录模块的数据库表及其工作方式的那一刻起,您就可以使用SQL直接更改它们。

  

如何自己定义登录功能,验证用户和   将他重定向到另一页?

您可以使用用户配置文件存储额外的参数,然后在代码中使用它们。 Storing user preferences in Web Application

在登录控件上,OnLoggedIn="OnLoggedIn"是最终调用,您可以读取该参数并将用户发送到正确的页面。