小编Abo*_*azl的帖子

“尝试让您登录时出错:''”使用 IdentiyServer 身份验证的 Blazor WebAssembly

我有一个使用 IdentityServer 的 Blazor WebAssembly 应用程序,该应用程序附带模板作为我的身份验证服务。我遇到一个问题,一些用户在尝试登录时看到“尝试登录时出错:''”。我让用户清除了 cookie 和缓存,但他们在所有浏览器中仍然遇到这个问题。奇怪的是,大多数用户都能够登录,但只有一小部分用户遇到该错误。另一个奇怪的事情是,似乎如果他们使用其他设备,例如手机、另一台电脑或 iPad,它就可以工作。什么可能导致此问题?我在尝试调试这个问题时遇到了麻烦,因为我无法在我的终端上复制它,并且到目前为止没有看到任何日志来获取任何信息。

该应用程序使用 Linux Docker 容器托管在 Google Cloud Platform 中。

先感谢您

编辑:这是我的启动课程

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

    public IConfiguration Configuration { get; }

    readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
    private const string XForwardedPathBase = "X-Forwarded-PathBase";
    private const string XForwardedProto = "X-Forwarded-Proto";

    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core identityserver4 blazor blazor-webassembly

10
推荐指数
2
解决办法
8165
查看次数

如何在不创建表的情况下将动态查询的结果存储在临时表中?

我们正在编写一个负责获取存储过程名称的存储过程,并返回包含该存储过程列及其数据类型的结果。但是,我们遇到了执行动态查询以返回存储过程结果的问题,但是我们无法将其存储在临时表中!

您可以在下面看到我们的查询:

  DECLARE @ProcName VARCHAR(100)='spGetOraganizationsList',
  @ParamName VARCHAR(100),@DataType VARCHAR(20),
  @Query NVARCHAR(MAX)='EXEC '+'spGetOraganizationsList '

  SELECT  PARAMETER_NAME,DATA_TYPE 
  INTO #Tmp
  FROM  information_schema.PARAMETERS
  WHERE SPECIFIC_NAME=@ProcName

  DECLARE ParamCursor CURSOR 
  FOR SELECT * FROM #Tmp
  OPEN ParamCursor
  FETCH NEXT FROM ParamCursor
  INTO @ParamName,@DataType

  WHILE @@FETCH_STATUS = 0 
  BEGIN
  SET @Query=@Query+@ParamName+'=Null,'
  FETCH NEXT FROM ParamCursor INTO @ParamName,@DataType
  END
  CLOSE ParamCursor
  DEALLOCATE ParamCursor
  DROP TABLE #Tmp

  EXEC sp_executesql @Query
Run Code Online (Sandbox Code Playgroud)

问题是我无法将其结果存储在临时表中,并且OPENROWSET不接受变量。

sql sql-server

8
推荐指数
1
解决办法
374
查看次数

如何为 RedirectToAction 编写扩展方法以在 Mvc 中设置 TempData?

我想为在 mvc 控制器中调用的 RedirectToAction() 方法编写一个扩展方法。在这种方法中,我想用我的消息设置TempData并有类似这样的 RedirectToAction("Index").WithMessage(message)

我写了这段代码

    public static class ActionResultExtension
{
    public static IActionResult WithMessage(this IActionResult result,string message)
    {

    }
} 
Run Code Online (Sandbox Code Playgroud)

但问题是我不知道我应该如何访问上下文

c# asp.net-core-mvc asp.net-core

5
推荐指数
0
解决办法
672
查看次数

在包含静态字段的非静态类中触发析构函数?

我想测试何时在类中调用析构函数,当它是一个简单的类时,一切都会按预期进行-当我们离开实例的作用域析构函数时。

但是,当我们添加静态字段时,它不会发生。谁能解释这种情况背后的概念?

public class Test
{
    ~Test(){}
    private static string StaticField="";
    private float NonStaticField;    
}
Run Code Online (Sandbox Code Playgroud)

对于非静态且具有值的其他字段会发生什么?他们永远不会被清洗吗?

我测试了通过Controller调用析构函数的方法,如下所示

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        var ts = new Test();
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在离开Index析构函数后删除静态字段时被调用。

编辑:调用析构函数有点奇怪,因为它在静态方法和非静态方法中的行为不同,如果我在静态方法内创建实例并离开范围,则调用析构函数。

c# asp.net asp.net-mvc

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

执行 sp_configure 'max server memory' 时出现错误

当我想设置最大服务器内存时,我收到以下错误消息:

配置选项“最大服务器内存”不存在,或者它可能是高级选项

sql查询如下:

exec sp_configure 'max server memory', 1024
reconfigure
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

c# - 为什么将字节值分配给动态变量将动态更改为字节数据类型?

在一次采访中,我被要求定义以下代码的输出:

    byte data= 100;
    dynamic val = data;
    Console.WriteLine(val.GetType())
Run Code Online (Sandbox Code Playgroud)

我回答说它不会改变val变量的数据类型,但是当我在控制台中测试时,它确实改变了! val变量更改为 System.Byte

但更有趣的是,当您将val数据类型更改为 int32 时,仍然没有任何变化System.Int32

    byte data= 100;
    int val = data;
    Console.WriteLine(val.GetType())
Run Code Online (Sandbox Code Playgroud)

这些转换的逻辑是什么?

c#

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

SQL Server 无法捕获链接服务器超时错误

我编写了一个通过 调用另一个过程的过程link server,它具有 try catch 块,并且 catch 块在大多数错误的情况下都可以很好地工作,例如,当我想“将 NULL 值插入到不可为空的列”时,catch 块是成功执行并将错误结果记录到我的表中,但是当涉及到时link server timeout,catch 块不起作用,我不知道我在哪里错过了导致此问题的事情。

你可以看一下我的流程

   AS
   BEGIN
   BEGIN TRY 
   BEGIN TRANSACTION
   DECLARE @BeforeCall DATETIME,@AfterCall DATETIME,@DiffSec BIGINT,@CycleId BIGINT
   DECLARE @TBL TABLE(Date INT,Time INT,Branch INT,Amount BIGINT)

   ----------------Get Last CycleId------------------------------------------
   SELECT TOP 1 @CycleId=CycleId FROM dbo.BranchesResetDate_History
   ORDER BY CycleId DESC
   SET @CycleId=ISNULL(@CycleId,0)+1;
   ------------------------------------------------------------------
   -----------------Get Reset Date--------------------------------------------
   SET @BeforeCall=GETDATE()

    INSERT INTO @TBL
    (
        Date,
        Time,
        Amount,
        Branch
    )

    EXEC [AB_TO_FK].[xxxx].dbo.GetResetDate
    
    SET @AfterCall=GETDATE()
    
    SET @DiffSec=DATEDIFF(SECOND,@BeforeCall,@AfterCall)

    -------------------------------------------------------------------
    --------------------Log Execute Result To History------------------ …
Run Code Online (Sandbox Code Playgroud)

sql-server

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

如何在c#中强制方法执行顺序

长话短说,我有以下课程:

public class FlowBasePipeline<T>
{
    private List<StepBaseBusiness<T>> stepList = new List<StepBaseBusiness<T>>();
    
    public void Push(StepBaseBusiness<T> step)
    {
        stepList.Add(step);
    }
    
    public void Trigger(T result)
    {
        foreach (var step in stepList )
        {
            result = step.Execute(result);
            if (!result.IsSuccess)
            {
                break;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是强迫程序员首先调用Push方法,然后让他们访问Trigger方法,在这种情况下不允许以下场景

var pipeline=new FlowBasePipeline<MyStepResult>();
pipeline.Trigger()// Trigger method is not recognized
Run Code Online (Sandbox Code Playgroud)

我们应该首先调用Push方法

var pipeline=new FlowBasePipeline<MyStepResult>();
pipeline.Push(new MyStep()).Trigger()//Now Trigger is recognized
Run Code Online (Sandbox Code Playgroud)

我所做的:

我按如下方式应用了显式接口方法实现以使其工作:

public interface IBasePipeline<T> where T:BaseResult,new()
{
    void Trigger();
    IBasePipeline<T> Push(StepBaseBusiness<T> step);
} …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns functional-programming

-1
推荐指数
1
解决办法
131
查看次数