我有一个ASP.NET页面,允许管理员更改用户的密码.由于管理员不知道用户的密码,我使用以下内容:
MembershipUser member = Membership.GetUser(_usernameTextBox.Text);
member.ChangePassword(member.ResetPassword(), _passNewTextBox.Text);
Run Code Online (Sandbox Code Playgroud)
- 正如这个SO问题所描述的那样.
如果新密码不符合web.config文件中配置的复杂性要求,则密码将被重置,但不会更改为所需的密码.如果新密码不符合复杂性要求,则密码不应发生任何变化.
是否有一种简单的方法可以根据复杂性要求测试新密码?
我已经看到一些指导建议您通过分层存储过程的所有数据访问来保护数据库.
我知道对于SQL Server,您可以保护表,甚至是针对CRUD操作的列.
例如:
--// Logged in as 'sa'
USE AdventureWorks;
GRANT SELECT ON Person.Address(AddressID, AddressLine1) to Matt;
GRANT UPDATE ON Person.Address(AddressLine1) to Matt;
--// Logged in as 'Matt'
SELECT * from Person.Address; --// Fail
SELECT AddressID, AddressLine1 from Person.Address; --// Succeed
UPDATE Person.Address SET AddressLine1 = '#____ 2700 Production Way'
WHERE AddressID = 497; --// Succeed
Run Code Online (Sandbox Code Playgroud)
鉴于您可以针对CRUD操作保护表甚至列,使用存储过程如何提供额外的安全性或安全性管理?
在我编写的测试用例中,字符串比较似乎在SQL Server/.NET CLR之间的工作方式不同.
这个C#代码:
string lesser = "SR2-A1-10-90";
string greater = "SR2-A1-100-10";
Debug.WriteLine(string.Compare("A","B"));
Debug.WriteLine(string.Compare(lesser, greater));
Run Code Online (Sandbox Code Playgroud)
将输出:
-1
1
Run Code Online (Sandbox Code Playgroud)
这个SQL Server代码:
declare @lesser varchar(20);
declare @greater varchar(20);
set @lesser = 'SR2-A1-10-90';
set @greater = 'SR2-A1-100-10';
IF @lesser < @greater
SELECT 'Less Than';
ELSE
SELECT 'Greater than';
Run Code Online (Sandbox Code Playgroud)
将输出:
Less Than
Run Code Online (Sandbox Code Playgroud)
为什么不同?
有没有办法搜索(存储过程,函数,视图)的集合来使用常量?
我有一个问题,我有一个SQL服务器数据库.它声明了很多存储过程和函数.我正在寻找"115"的用法,这恰好是付费代码.我原本没有编写所有代码,因此我正在寻找声明常量的任何地方,或字面意思使用字符串"115".
我想paralelize建立在Windows窗体顶部的3D体素编辑器,它采用了raycaster来呈现这样将屏幕并获得在池中的每个线程渲染它的一部分应该是微不足道的.
问题出现在Windows窗体的线程必须作为STA运行 - 我可以让其他线程启动并完成工作但在等待它们完成时阻塞主线程导致奇怪的随机死锁如预期的那样.
保持主线程不被阻塞也是一个问题 - 例如,如果用户使用填充工具,则在渲染过程中将处理输入,这将导致"中间"图像(例如,部分着色的对象).在每帧之前复制整个图像是不可行的,因为如果必须每帧复制,则卷足够大以抵消任何性能增益.
我想知道是否有任何解决方法可以让amin线程以不会被实际阻止的方式阻止用户,但会将输入处理延迟到下一帧.
如果不可能,有没有更好的设计来处理这个?
编辑:阅读原文我认为我不清楚raycaster是否实时运行,因此显示进度对话框根本不起作用.不幸的是,帧之间的输入FPS足够低(5-40取决于各种因素)以产生不希望的结果.
我已经尝试实现它阻止UI线程并使用ThreadPool的一些线程进行处理,除了STA的这个问题之外它工作正常.
sql ×3
sql-server ×3
c# ×2
security ×2
asp.net ×1
comparison ×1
constants ×1
membership ×1
search ×1
string ×1
t-sql ×1
winforms ×1