我正在asp.net网站上工作,无法使用表单身份验证实现自定义角色提供程序。
我有一个带有“ UserRoles”表的SQL Server数据库“ MyBase”,其中包含UserRoleID,EmployeeID,RoleID和UserName字段。当用户使用自定义登录页面(仅几个文本框,标签和一个按钮)登录时,我想从该表中检索该用户的角色。
我已经搜索/阅读了一些问题,场景和示例,但是仍然缺少某些地方,因此我正在寻求帮助。
到目前为止,我所做的是:
在web.config中:
我创建了以下自定义类并列出了sub / function / properties:
在我的登录按钮中:
MemProv.ValidateUser(txt_username.Text, encrypedPW)
,它可以正确返回true或false。FormsAuthentication.SetAuthCookie(txt_username.Text, False)
RoleProv.GetRolesForUser(txt_Username.Text)
该函数正确返回String()或角色。当我检查User.Identity时,isAuthenticated = false和Name =“”。
我很确定我缺少IIdentity和/或IPrincipal的实现,但是我不知道在哪里/如何实现它们。
所以我的问题是:
我是否需要经历所有这些工作,才能将角色保留在创建的SQL Server表中?
我需要合并IIDentity和IPrincipal吗?如果是这样,我该怎么办?
我创建了两个实现IPrincipal和IIdentity的类。
在委托人的IsInRole函数中,我调用了自定义RoleProvider的IsUserInRole函数。
我使用自定义登录页面登录,并被重定向到正确的表单。Identity和RolePrincipal都包含正确的信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句