这是一个您可以放入控制器并在操作中使用它来获取 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();
...
}
}