1

我是新來的mvc 3,我用它與asp.net成員資格提供程序....所以我想創建一個擴展方法讓我得到日誌用戶從任何控制器GUID whitin我的網站ASP.NET MVC 3控制器擴展方法

類似的東西:

public static Guid GetLoggedUser(this Controller controller) 
    { 
     return (Guid)Membership.GetUser(controller.User.Identity.Name).ProviderUserKey.ToString(); 
    } 

任何想法?

+0

您需要使用頂部的命名空間。你添加了嗎? – turtlepick

+0

你的代碼中使用的T是什麼?即使返回類型是一個MembershipUser,你的投射也不會工作,因爲你將一個字符串投射到Guid並返回它。這只是錯誤的地方。 –

+0

@MystereMan我糾正了我的代碼....但看,我完全寫了它,因爲intellisense不給我任何幫助,我必須做的...... – Andrey

回答

1

爲什麼不使用ControllerBase類中的「用戶」屬性?

public class MyController : Controller 
{ 
    public ActionResult GetUser() 
    { 
     var userName = User.Identity.Name; 
    } 
} 

您可以使用自定義IPrincipal/IIdentity來包含有關用戶的其他信息。 Here是如何使用Forms Auth完成的。

+0

我正在嘗試修改這種webforms方法,以便如何存儲有關用戶的自定義數據,並與asp.net成員資格提供程序(本文的第18部分,http://www.4guysfromrolla.com/articles/110310-1.aspx)集成。 ..但我正在使用MVC和實體框架將自定義數據存儲在自定義表中(與用戶的Guid有關的成員用戶表) – Andrey