質問

I am learning how to use Profile that comes with Membership and Role in .NET. However, I am not sure where is the top of the chain to set the value:

//Q1. Does it mean I set auth manually when loading user, or create it if not already exists? 
//Or am I meant to get the isauth value from somewhere and pass it in?
var currentUserProfile = ProfileBase.Create(Membership.GetUser().UserName, isauth);
var anyUserProfile = ProfileBase.Create(strNewUser, isauth);
//isauth: true to indicate the user is authenticated;
//        false to indicate the user is anonymous.

And to get the value:

//Q2. Are res1 and res2 below reflecting the same thing?
//Gets a value that indicates whether the user has been authenticated
bool res1 = HttpContext.Current.User.Identity.IsAuthenticated;
//Gets a value indicating whether the user profile is for an anonymous user
bool res2 = HttpContext.Current.Profile.IsAnonymous;

I am confused about the relations of auth/anonymous in each of them. Which one is the correct way to get/set user to be authenticated or anonymous? My goal here is to enable both anonymous users and authenticated users to have a profile.

役に立ちましたか?

解決

The res1 and res2 are different as its values depend on the settings in IIS config.

You can enable the "Anonymous Access" in IIS to bind the anonymous identity with a User Account

From Codeproject:
if you run this code in IIS6 under anonymous mode you will get no details as shown below. enter image description here

Take a look at following article on asp.net authentication and authorizaion:
http://www.codeproject.com/Articles/98950/ASP-NET-authentication-and-authorization

In IIS7 you can navigate to Security >> Authentication as follows:

enter image description here

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top