我正在努力加快代码合同的速度.我喜欢这个概念,但在实践中,我没有看到在许多私有方法上添加Contract.Requires的价值,其中一些只是一行或两行.
我可以在Public方法上看到这一点,但在私有类方法上,它似乎有点过分.
我是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
在提交之前检查是否有必要.
这不是一个编码问题,而是一个正确处理和处理刷新令牌的概念问题。
我有一个单页应用程序,它在登录时发出 jwt 令牌。该令牌工作得很好。现在,我想将过期时间设置为较低的值,并使用刷新令牌来刷新不记名令牌。
问题是,刷新令牌中应该存储哪些声明?在发出新令牌之前应该执行哪些步骤来验证刷新令牌?
例如,现在我的刷新令牌是一个 jwt,它存储过期时间,以便客户端知道刷新令牌何时过期,以及用户名声明,以便我知道刷新令牌与哪个用户关联。
那么当收到刷新令牌时:
这是正确的工作流程吗?我只是想确保我没有错过任何安全检查。
使用 Visual Studio 2012。打开 Sql Server 对象资源管理器,打开一个数据库。
单击现有的存储过程,然后右键单击“查看代码”这将打开一个带有创建过程的窗口。
现在,将“创建”更改为“更改”以修改程序。Visual Studio 将给出错误:SQL70001 :: 在此上下文中无法识别此语句。
那么如何从 Visual Studio 更改过程?
编辑
此问题的解决方案是复制所有文本,关闭所有窗口,打开一个新脚本,将其粘贴进去,然后它就可以正常工作了。
格雷格
我看到几天前在GitHub上发布了Typescript 1.7.2.
我如何在VS 2015中使用它?
我安装了TS扩展,但它是1.6.3.
我一直在使用SQL Server项目来管理数据库的结构.
首先我创建了项目,然后导入了一个数据库.
然后,当我需要进行模式更改时,请更改字段名称,我在SQL Server项目中执行,然后使用模式比较选项将其发布到实际数据库.
我想更进一步,以保存数据库所需的基本数据.例如,一个OrderType
包含2条记录"PHONE","WEB" 的表格
数据库的所有新实例都需要此数据.有没有办法将这些保留在SQL Server项目中,以便它们不会丢失?
现在看来,唯一的方法是保留master数据库的实际副本及其中的元数据,然后使用数据比较.但是,如果数据可以与模式同时发布,那么结果数据库就完成了,那就太棒了.
我有两个 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)
如何启用/安装这些密码套件?
我有一个 WordPress on Linux App,它在 Azure 上运行,带有 MySql 数据库。
我需要能够将 PDF 文件上传到 Azure,然后在网站中有一个链接,使用户可以单击该链接并查看 PDF。
更具体地说,该文档是在本地创建然后上传到 Azure 的月度发票。用户将登录,然后看到一个链接,允许他查看发票。
我不知道文档应该如何存储。它应该存储在MySql数据库中吗?或者在可以链接到的某种类型的存储中?当然,它需要是安全的。
我有一个aspnetcore应用程序.
在启动期间,它执行常规的启动操作.
完成这些操作后,我需要进行一些验证以确保其设置正确.特别是,我需要使用默认连接字符串在数据库中调用存储过程.换句话说,我需要创建一个使用依赖注入的类,以便在调用它之前完成.
只是不确定将这些代码放在StartUp中的位置.
我有以下调用存储过程的代码。我希望能够捕获存储过程运行期间发生的任何错误。
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# ×2
sql-server ×2
ado.net ×1
asp.net-core ×1
azure ×1
jwt ×1
security ×1
ssl ×1
t-sql ×1
tls1.2 ×1
typescript ×1