小编Gre*_*Gum的帖子

代码合同 - 是否应该检查私有方法的前后条件?

我正在努力加快代码合同的速度.我喜欢这个概念,但在实践中,我没有看到在许多私有方法上添加Contract.Requires的价值,其中一些只是一行或两行.

我可以在Public方法上看到这一点,但在私有类方法上,它似乎有点过分.

c# code-contracts

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

交易是否需要尝试捕获?

我是ac#developer,学习更多TSQL.我写了一个这样的脚本:

begin transaction
--Insert into several tables
end transaction
Run Code Online (Sandbox Code Playgroud)

但我被告知这不是一个好主意,并使用这样的东西:

BEGIN TRANSACTION;

BEGIN TRY
    -- Generate a constraint violation error.
    DELETE FROM Production.Product
    WHERE ProductID = 980;
END TRY
BEGIN CATCH
    SELECT 
        ERROR_NUMBER() AS ErrorNumber
        ,ERROR_SEVERITY() AS ErrorSeverity
        ,ERROR_STATE() AS ErrorState
        ,ERROR_PROCEDURE() AS ErrorProcedure
        ,ERROR_LINE() AS ErrorLine
        ,ERROR_MESSAGE() AS ErrorMessage;

    IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
END CATCH;

IF @@TRANCOUNT > 0
    COMMIT TRANSACTION;
GO
Run Code Online (Sandbox Code Playgroud)

我不明白为什么第二个例子更正确.第一个不会以同样的方式工作吗?似乎第一个要么更新所有表,要么根本不更新?我不明白为什么@@TRANCOUNT在提交之前检查是否有必要.

t-sql sql-server

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

验证刷新令牌和颁发新的不记名令牌的工作流程是什么?

这不是一个编码问题,而是一个正确处理和处理刷新令牌的概念问题。

我有一个单页应用程序,它在登录时发出 jwt 令牌。该令牌工作得很好。现在,我想将过期时间设置为较低的值,并使用刷新令牌来刷新不记名令牌。

问题是,刷新令牌中应该存储哪些声明?在发出新令牌之前应该执行哪些步骤来验证刷新令牌?

例如,现在我的刷新令牌是一个 jwt,它存储过期时间,以便客户端知道刷新令牌何时过期,以及用户名声明,以便我知道刷新令牌与哪个用户关联。

那么当收到刷新令牌时:

  1. 检查它是否已过期。
  2. 检查它是否未被撤销。
  3. 使用刷新令牌中的用户名来颁发新的短期不记名令牌。

这是正确的工作流程吗?我只是想确保我没有错过任何安全检查。

security jwt

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

Visual Studio 中的 Alter Procedure 语句给出“在此上下文消息中无法识别此语句”

使用 Visual Studio 2012。打开 Sql Server 对象资源管理器,打开一个数据库。

单击现有的存储过程,然后右键单击“查看代码”这将打开一个带有创建过程的窗口。

现在,将“创建”更改为“更改”以修改程序。Visual Studio 将给出错误:SQL70001 :: 在此上下文中无法识别此语句。

那么如何从 Visual Studio 更改过程?

编辑

此问题的解决方案是复制所有文本,关闭所有窗口,打开一个新脚本,将其粘贴进去,然后它就可以正常工作了。

格雷格

sql-server stored-procedures visual-studio-2012

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

如何在VS 2015中使用Typescript 1.7.2?

我看到几天前在GitHub上发布了Typescript 1.7.2.

我如何在VS 2015中使用它?

我安装了TS扩展,但它是1.6.3.

typescript visual-studio-2015

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

SQL Server数据工具 - 如何将数据与模式一起保留?

我一直在使用SQL Server项目来管理数据库的结构.

首先我创建了项目,然后导入了一个数据库.

然后,当我需要进行模式更改时,请更改字段名称,我在SQL Server项目中执行,然后使用模式比较选项将其发布到实际数据库.

我想更进一步,以保存数据库所需的基本数据.例如,一个OrderType包含2条记录"PHONE","WEB" 的表格

数据库的所有新实例都需要此数据.有没有办法将这些保留在SQL Server项目中,以便它们不会丢失?

现在看来,唯一的方法是保留master数据库的实际副本及其中的元数据,然后使用数据比较.但是,如果数据可以与模式同时发布,那么结果数据库就完成了,那就太棒了.

sql-server-data-tools sql-server-data-project

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

如何在 Windows Server 2012 上安装密码套件

我有两个 EDI 服务器 A 和 B。贸易伙伴使用 TLS 进行连接。

一个贸易伙伴无法连接到服务器 B,但可以连接到服务器 A。

问题显然是 A 上的密码套件与 B 上的密码套件不同。原因是 B 已应用 Windows 更新,但 A 未应用。

因此,我想将更新之前最初存在的所有密码套件放回到 B 上,以便它们是相同的。这应该允许合作伙伴成功连接。

我已经使用 SSLLabs 运行了一份关于密码套件的报告,这是 A 上的列表,但 B 上没有:

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e)
TLS_RSA_WITH_AES_256_GCM_SHA384 (0x9d) TLS_RSA_WITH_AES_128_GCM_SHA256    (0x9c) 
TLS_RSA_WITH_RC4_128_MD5 (0x4)
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f)
Run Code Online (Sandbox Code Playgroud)

如何启用/安装这些密码套件?

ssl tls1.2

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

如何在 Azure 上存储 pdf

我有一个 WordPress on Linux App,它在 Azure 上运行,带有 MySql 数据库。

我需要能够将 PDF 文件上传到 Azure,然后在网站中有一个链接,使用户可以单击该链接并查看 PDF。

更具体地说,该文档是在本地创建然后上传到 Azure 的月度发票。用户将登录,然后看到一个链接,允许他查看发票。

我不知道文档应该如何存储。它应该存储在MySql数据库中吗?或者在可以链接到的某种类型的存储中?当然,它需要是安全的。

azure azure-storage azure-web-app-service

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

在启动完成后将代码放在何处运行

我有一个aspnetcore应用程序.

在启动期间,它执行常规的启动操作.

完成这些操作后,我需要进行一些验证以确保其设置正确.特别是,我需要使用默认连接字符串在数据库中调用存储过程.换句话说,我需要创建一个使用依赖注入的类,以便在调用它之前完成.

只是不确定将这些代码放在StartUp中的位置.

asp.net-core

6
推荐指数
3
解决办法
4403
查看次数

如何从 Ado.net 捕获 Sql Server 错误

我有以下调用存储过程的代码。我希望能够捕获存储过程运行期间发生的任何错误。

try {
            using (var connection = GetConnection()) {

                using (SqlCommand cmd = connection.CreateCommand()) {
                    connection.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "VerifyInitialization";
                    cmd.Parameters.Add(new SqlParameter("@userId", user.Id));
                    cmd.Parameters.Add(new SqlParameter("@domainId", user.DomainId));
                    cmd.ExecuteNonQueryAsync();
                }

            }
        }
        catch (Exception ex) {
            throw new LoginException(LoginExceptionType.Other, ex.Message);
        }
Run Code Online (Sandbox Code Playgroud)

这就是存储过程,它基本上只是调用其他存储过程。

 ALTER PROCEDURE [dbo].[VerifyInitialization] 
-- Add the parameters for the stored procedure here
@userId int, 
@domainId int
 AS
 BEGIN
Begin Try
SET NOCOUNT ON;
Exec VerifyInitializationOfDefaultLocalizationItems
Exec VerifyInitializationOfLayoutLists @domainId
Exec VerifyInitializationOfLayoutListItems @domainId
Exec VerifyInitializationOfLocalizationItems @domainId
Exec VerifyInitializationOfLookupLists @domainId
Exec …
Run Code Online (Sandbox Code Playgroud)

c# ado.net sql-server-2008-r2

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