Loading

ASP.NET WebForm Identity使用

环境

  win10企业版x64+visual studio 2017+.net 4.5

step1

  基本使用+邮件确认+密码重置

  https://docs.microsoft.com/en-us/aspnet/web-forms/overview/security/create-a-secure-aspnet-web-forms-app-with-user-registration-email-confirmation-and-password-reset

  问题

    文档上邮件发送的包无法安装成功,自己写一个smtp发送就行

step2

  完善用户表信息(增加修改字段)

  https://channel9.msdn.com/Events/dotnetConf/2014/ASP-NET-Identity-Security

  

 public class ApplicationUser : IdentityUser
    {
        public string HomeTown { get; set; }  //这个增加字段
        public ClaimsIdentity GenerateUserIdentity(ApplicationUserManager manager)
        {
            // 请注意,authenticationType 必须与 CookieAuthenticationOptions.AuthenticationType 中定义的相应项匹配
            var userIdentity = manager.CreateIdentity(this, DefaultAuthenticationTypes.ApplicationCookie);
            // 在此处添加自定义用户声明
            return userIdentity;
        }

        public Task<ClaimsIdentity> GenerateUserIdentityAsync(ApplicationUserManager manager)
        {
            return Task.FromResult(GenerateUserIdentity(manager));
        }

    }

  程序包管理控制台执行下面的命令

    Enable-Migrations
    Add-Migration hometowm
    Update-database

step3

  facebook登陆

  https://docs.microsoft.com/en-us/aspnet/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on

  注意

    要开启站点的ssl

  问题1

    facebook的api页面有更新,与文档中的不一致,不过因为之前做过fb js登陆,所以用起来没什么问题

  问题2

    fb的回掉里面一直有deny,不能成功

    解决:更新nuget的facebook验证相关的包

step4

  角色管理及权限控制

  http://www.cnblogs.com/chonghanyu/category/631169.html

  权限控制配置参考资料

  http://www.cftea.com/c/2011/01/LMZ3SKTUX6BL70T5.asp

  

<?xml version="1.0"?>
<configuration>

  <location path="Manage.aspx">
    <system.web>
      <authorization>
        <!--拒绝匿名用户-->
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>

  <location path="RolesAdmin.aspx">
    <system.web>
      <authorization>
        <!--只允许admin角色访问:注意大小写-->
        <allow roles ="Admin"/>
        <!--拒绝所有用户-->
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

  

  注意

    配置文件中的roles="Admin"的大小写要与角色一致

    

代码下载

 

posted @ 2017-07-26 16:10  shihao316558512  阅读(555)  评论(0编辑  收藏  举报