簡體   English   中英

.NET Core 2.0訪問用戶機密

[英].NET Core 2.0 accessing user secrets

我正在嘗試設置.net核心2.0 Web應用程序,以便在用戶注冊時發送電子郵件並恢復密碼。 我已經按照本教程: https//docs.microsoft.com/en-us/aspnet/core/security/app-secrets?tabs=visual-studio

但是,在閱讀評論部分時,似乎沒有為Core 2.0更新教程。 我的問題是,當我開始分享“ 將用戶機密配置源添加到啟動方法 ”時,我無法弄清楚啟動文件應該是什么樣子,因為我的啟動文件與那里顯示的不同。 任何人都可以通過向我展示啟動文件應該是什么樣子來幫助我嗎? 謝謝。

這是我目前的啟動文件:

public class Startup
{
    string _testSecret = null;

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        _testSecret = Configuration["MySecret"];
        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

        services.AddIdentity<ApplicationUser, IdentityRole>(config =>
        {
            config.SignIn.RequireConfirmedEmail = true;
        })
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

        // Add application services.
        services.AddTransient<IEmailSender, EmailSender>();

        services.AddMvc();
        services.Configure<AuthMessageSenderOptions>(Configuration);
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder();

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseBrowserLink();
            app.UseDatabaseErrorPage();
            builder.AddUserSecrets<Startup>();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseStaticFiles();

        app.UseAuthentication();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
    }
}

在您的代碼中,我沒有找到調用ConfigurationBuilder類的build()函數。 這是示例代碼。

var builder = new ConfigurationBuilder();
builder.AddUserSecrets<Startup>();
var config builder.Build(); //This line is missing from your code
string mySecret = config ['EmailAccount'];

參考: https ://docs.microsoft.com/en-us/aspnet/core/security/app-secrets ? view = aspnetcore-2.1 & tabs = windows#access-a-secret

暫無
暫無

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

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