2011-07-16 77 views
1

我有一個剃刀網站,我與WebMatrix的全登錄/註冊和管理角色製作。而一個要求是管理員能夠爲了能夠增加,修改,取消和或確認的新訂單,他將記錄在爲特定用戶「登錄現有的用戶。」使用FormsAuthentication

我知道這是不是接近這個最常用的方式,但我已經看到了很多做。我目前擁有一個域名倒賣業務,我的供應商使用這種類型的功能,它讓我登錄作爲用戶信貸他們的帳戶ETC ..

所以,我被告知FormsAuthentication會在C# 。所以,我檢查了:

http://msdn.microsoft.com/en-us/library/twk5762b.aspx

這使我問:

什麼?

而且......

通過「用戶名」,他們的意思是當用戶註冊所創建的電子郵件地址?或者他們的意思是UserId,這是一個INT?

而且,是不是真的因爲這樣做?:

@{ 
    if(Roles.IsUserInRole("Administrator")) 
    { 
    SetAuthCookie(
     "ClientsUserNameHere, 
     true 
    ); 
    } 
    else 
    { 
    Response.Redirect("~/Account/SignIn"); 
    } 
} 
<DOCTYPE! HTML> 
<html> 
    <head></head> 
    <body> 
    <p>Hello, Administrator, you are currently Signed In as [insert client name here].</p> 
    </body> 
</html> 

回答

3

一樣簡單,是不是真的像這樣簡單?

是的,這是真的那麼簡單。嗯,其實這個生效,您需要重定向,因爲頁面會使用該請求的cookie仍然表示管理員:

if(Roles.IsUserInRole("Administrator")) { 
    FormsAuthentication.SetAuthCookie(
     "ClientsUserNameHere", 
     false // <-- set to true only if you want persistent cookies 
    ); 
    Response.Redirect("~/Home/SomeUserPage"); 
} 

另外你可以存儲一些信息到會話中,表明這是一個管理員的作用作爲普通用戶(如果您需要了解它)而不是普通用戶。

你也不妨來看看在following article了更先進的模擬場景。

+0

活泉!非常感謝@Darin - 非常有用的文章也:) – bendr