簡體   English   中英

使用桌面應用程序中的MVC Identity代碼

[英]Using MVC Identity code from desktop application

我正在嘗試使用桌面應用程序中的MVC Identity代碼。 桌面應用程序需要對我的用戶數據進行一系列添加和更新。

我已經從生成的MVC應用程序復制了類,安裝了所需的包並進行了編譯代碼所需的所有更改。

我現在唯一的問題是創建ApplicationUserManager類的實例。

public ApplicationUserManager UserManager
{
    get => _userManager ?? HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
    private set
    {
        _userManager = value;
    }
}
private ApplicationUserManager _userManager;

問題是我沒有HttpContext ,因此HttpContext.Current將始終返回null。

我正在做什么? 如何在沒有HTTP上下文的情況下從桌面應用程序構建UserManager

更新:

我可以直接訪問數據庫,所以我很滿意不需要身份代碼和類的解決方案。 這里最大的障礙是創建和更新密碼,以便可以通過我的網站應用程序中的身份代碼“理解”它們。

有趣的方法,

否則,有必要清除httpcontext觸及的所有內容..

你可以像這樣創建ApplicationUserManager實例。

public ApplicationUserManager UserManager
{
    get
    { 
        if(_userManager == null)
        {
            _userManager =  new ApplicationUserManager(new Microsoft.AspNet.Identity.EntityFramework.UserStore<ApplicationUser>(yourDbContext));
        }
        return _userManager;
    }
}

你可以這樣做:

var context = ApplicationDbContext.Create();
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);
//change password
var result = userManager.ChangePasswordAsync("userId", "oldPwd", "newPwd");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM