小编Raz*_*mil的帖子

如何在 Web API Post 方法中返回自定义消息

我希望以下 Post 方法通过为 " result" 变量分配失败值来返回失败,但我不确定如何实现。理想情况下,它会说安装 ID 无效,但不确定我可以这样做:

[Authorize]
[HttpPost, Route("sendForDevelopment")]
public async Task<NotificationOutcome> Post([FromBody]string message, string installationId)
{

    string hubName = "myHubName";
    string hubNameDefaultShared = "myHubNameDefaultShared";

    NotificationHubClient hub = NotificationHubClient
                    .CreateClientFromConnectionString(hubNameDefaultShared, hubName, enableTestSend: true);

    var templateParams = new Dictionary<string, string>
    {
        ["messageParam"] = message
    };

    NotificationOutcome result = null;

    if (string.IsNullOrWhiteSpace(installationId))
    {
        // output a installation id is null or empty message or assign failure to the result variable
    }
    else
    {
        result = await hub.SendTemplateNotificationAsync(templateParams, "$InstallationId:{" + …
Run Code Online (Sandbox Code Playgroud)

c# push-notification asp.net-web-api

2
推荐指数
1
解决办法
3088
查看次数

NET Core 3.1 MVC 授权/身份验证,使用在单独的 Net Core 3.1 Web Api 中从外部获取的令牌 (JWT)

我有3个项目:

  1. Net Core 3.1 MVC 项目。
  2. 使用 JWT 身份验证的 Net Core 3.1 Web Api 项目 --> 通过实体框架连接到数据库
  3. (Xamarin 应用程序还使用 Web API 进行身份验证和数据检索)。

我不想从两个项目(1,2)分别连接到同一个数据库(感觉不是一个好主意,如果我错了请纠正我,希望将数据库增删改查操作包含在Web API中)。

我想在Web Api项目中进行身份验证并将令牌传递给Net Core MVC项目。

我不知道如何使用令牌为MVC项目授权该用户,以便可以根据用户的角色等访问控制器。基本上使用在Web api中获得的令牌在MVC项目中登录该用户。这是否可能或正确的方法?有什么帮助吗?

MVC项目Startup.cs类

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

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {            
            // add for razor pages and refresh without rebuilding
            services.AddRazorPages().AddRazorRuntimeCompilation();


            // add httpClient
            services.AddHttpClient();

            // start auth jwt
            services.AddSession(options => {
                options.IdleTimeout = TimeSpan.FromMinutes(1);
            });
            //services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc jwt asp.net-core

2
推荐指数
1
解决办法
3135
查看次数