これは、コントローラーにドロップして、IDを取得するアクションで使用できる関数です。プロバイダーがすでにすべてを実行するためのAPIを提供している場合、メンバーシップデータベースをクエリするためにそのすべてのコードを実行する必要はありません。
private Guid GetUserID() {
var currentUser = Membership.GetUser(User.Identity.Name);
var userID = (Guid)currentUser.ProviderUserKey;
return userID;
}
public ActionResult Index() {
var userID = GetUserID();
...
}
また、そのコードをベースコントローラーに配置して、それを継承する任意のコントローラーからその関数にアクセスできるようにすることもできます。それはあなたのコードをドライに保ちます(あなた自身を繰り返さないでください)のであなたはコードの重複を持っていません
使用法は
ベースコントローラーを作成し、次のフォルダーに配置しますControllers
。Base
namespace YourApp.Web.Controllers {
public abstract class MyBaseController : Controller {
protected Guid GetUserID() {
var currentUser = Membership.GetUser(User.Identity.Name);
var userID = (Guid)currentUser.ProviderUserKey;
return userID;
}
}
}
これで、そのベースコントローラーを継承することで、通常のコントローラーのいずれかでそのベースコントローラーを使用できます。
public class HomeController : MyBaseController {
public ActionResult Index() {
var userID = GetUserID();
...
}
}