Re: custom principal becomes roleprincipal in pages



RoleManager places the RolePrincipal on Context.User. You can't use RoleManager when you are using a custom principal...


-----
Dominick Baier (http://www.leastprivilege.com)

Developing More Secure Microsoft ASP.NET 2.0 Applications (http://www.microsoft.com/mspress/books/9989.asp)

I followed the partical "How To: Implement Iprincipal -- J.D. Meier,
Alex Mackman, Michael Dunner, and Srinath Vasireddy -- November 2002"
to implement a custom principal. After created the CustomPrincipalApp
exactly as described in the artical, I changed two things:

The first is that I use the Membership and Roles classes to do the
authentication and get all the roles for the logon user in
btnLogon_Click,
see the code below (the original lines are commented out):
//bool isAuthenticated = IsAuthenticated(txtUserName.Text,
txtPassword.Text);
bool isAuthenticated = Membership.ValidateUser(txtUserName.Text,
txtPassword.Text);
if (isAuthenticated == true)
{
//string roles = GetRoles(txtUserName.Text,
txtPassword.Text);
string[] roleArray =
Roles.GetRolesForUser(txtUserName.Text);
string delimiter = "|";
StringBuilder builder = new StringBuilder();
foreach (String item in roleArray)
{
builder.Append(item);
builder.Append(delimiter);
}
if (builder.Length > 0)
builder.Length = builder.Length -
delimiter.Length;
string roles = "";
roles = builder.ToString();
The second thing I did was to add entries to the web.config file to
use
membership and role database in MS SQL Server 2005 as below:
<membership defaultProvider="MySQLMembershipProvider">
<providers>
<clear/>
<add name="MySQLMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="CustomPrincipalApp"
enablePasswordRetrieval="false"
enablePasswordReset="false"
requiresUniqueEmail="true"
requiresQuestionAndAnswer="true"
minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"
applicationName="CustomPrincipalApp"
passwordFormat="Hashed"/>
</providers>
</membership>
<roleManager enabled="true" cacheRolesInCookie="true"
defaultProvider="MySqlRoleProvider">
<providers>
<clear/>
<add connectionStringName="CustomPrincipalApp"
applicationName="CustomPrincipalApp"
name="MySqlRoleProvider"
type="System.Web.Security.SqlRoleProvider" />
</providers>
</roleManager>
As soon as I did these two things, the CustomPrincipal assigned in the
Application_AuthenticateRequest event of Global.asax will be changed
to RolePrincipal at the Page_Load of default.aspx.

I saw someone posted same question sometimes ago with the same problem
and two soultions been provided. The first is said to put the codes
into event Application_PostAuthenticate instead of
Application_AuthenticateRequest, unfortunately, I do not know why, the
event Application_PostAuthenticate failed to fired. The second
solution said to disable the roleManager. If I do that, then the
function call Roles.GetRolesForUser will fail.

Can someone help out with this?

Thanks in advance!



.



Relevant Pages

  • Re: Windows Forms Stylesheets?
    ... if your users don't know how to modify Windows appearance I don't see how it would be any easier to teach them to use a custom ... As for role-based changes to the UI, I agree that file-based configuration could be useful to an extent, but you'll still have to ... You could also use the .NET 2.0 Providers framework to create configurable settings for certain aspects of the program. ...
    (microsoft.public.dotnet.framework.windowsforms)
  • Re: StreamReader ReadLine alternate End Of Line
    ... StreamReader is not customizable for EOL. ... You can create a custom ... the characters of the string up to the first X'0D'. ...
    (microsoft.public.dotnet.languages.csharp)
  • RE: Sign custom SOAP Header on outbound call with WCF
    ... custom header which is added dynamically, one means to secure it is adding ... string action; ... Microsoft MSDN Online Support Lead ...
    (microsoft.public.dotnet.framework)
  • RE: Button to put disclaimer on email.
    ... text back from the string that I store, and cant convert it to html. ... original formatting of the email, ... Private Sub objMyCustomButton_Click(ByVal ctrl As Office.CommandBarButton, ... > mapping your custom button to the procedure name in the menu customization ...
    (microsoft.public.outlook.program_vba)
  • Re: How to call user defined function (UDF) from custom menu in Excel 2003?
    ... So after you resolved my OnAction problem, I created a public sub ... Intermediatein which an inputbox is asking for a cell selection. ... My goal is to create a custom menu with formulas that are very ... Function (serial As String) As Integer ...
    (microsoft.public.excel.programming)