ASP.NET WebForm Identity使用
环境
win10企业版x64+visual studio 2017+.net 4.5
step1
基本使用+邮件确认+密码重置
问题
文档上邮件发送的包无法安装成功,自己写一个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登陆
注意
要开启站点的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"的大小写要与角色一致
欢迎大家多多交流