由于标题已经解释,我想保护我的网络服务.我已经读过您可以使用soap身份验证标头执行此操作,但是用户名和密码将以纯文本形式传递.
我想知道我应该做些什么来保护我的网络服务?例子很棒.
我有一个我们合作的公司的例子,它有2个web服务.一个用于安全性,一个用于获取所需数据,但我没有他们的代码系统看起来很棒:
bool loginSuccessFull = false;
/// knooppunt
string loginID = ConfigurationManager.AppSettings["WebServiceLogin"];
string password = ConfigurationManager.AppSettings["WebServicePass"];
//A. The m_SecurityService object is created and initialised
Security securityService = new Security();
securityService.CookieContainer = new System.Net.CookieContainer();
string challenge = securityService.InitializeLogin(loginID);
string pwd = password;
string response = pwd + challenge;
System.Security.Cryptography.SHA1CryptoServiceProvider SHA1 = new System.Security.Cryptography.SHA1CryptoServiceProvider();
SHA1.Initialize();
byte[] hash = SHA1.ComputeHash(System.Text.Encoding.Default.GetBytes(response));
System.Text.StringBuilder builder = new System.Text.StringBuilder();
foreach (byte b in hash)
builder.Append(b.ToString("x2"));
//2. A login is done with the m_SecurityService object
if (securityService.Login(builder.ToString())) …Run Code Online (Sandbox Code Playgroud) 我在C#.Net中编写了一个WinForms程序,在密码表单中以编程方式单击按钮.
Form1加载并显示Form2为对话框.
如果DialogResult是DialogResult.OK的其他任何东西,应用程序将关闭.
到目前为止,我有一个按钮单击事件,编码如下:
if (txtpass.Text == "")
{
MessageBox.Show("You need to enter a password", "Password", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
txtpass.Focus();
}
else
{
if (txtpass.Text == "1234")
{
radButton1.DialogResult = DialogResult.OK;
radButton1.PerformClick();
}
else
{
MessageBox.Show("Password Incorrect", "Password", MessageBoxButtons.OK, MessageBoxIcon.Error);
txtpass.Text = "";
txtpass.Focus();
}
}
Run Code Online (Sandbox Code Playgroud)
我用radButton1.PerformClick();,但运行程序给我以下消息:
An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll
Run Code Online (Sandbox Code Playgroud)
我不确定导致此异常的原因是什么.
我需要发送一个自定义错误页面,用于我的asp.net网站生成的503错误.我试图通过关闭应用程序池(不起作用)以及通过请求充满我的应用程序来模拟条件.即使IIS向我发送默认的503错误页面,即使我尝试在IIS和ASP.NET中为此错误代码设置自定义URL,它仍然会返回默认的503错误页面!
如果有人也能告诉我IIS发送的默认503错误页面在哪里,我将不胜感激.
如果我有一个如下所示的C文件,i和之间有什么区别j?
#include <stdio.h>
#include <stdlib.h>
static int i;
int j;
int main ()
{
//Some implementation
}
Run Code Online (Sandbox Code Playgroud) 使用时BOOST_FOREACH,以下代码是否安全?
BOOST_FOREACH (const std::string& str, getStrings())
{
...
}
...
std::vector<std::string> getStrings()
{
std::vector<std::string> strings;
strings.push_back("Foo");
...
return strings;
}
Run Code Online (Sandbox Code Playgroud)
或者我应该在打电话之前抓住容器的副本BOOST_FOREACH,例如:
const std::vector<std::string> strings = getString();
BOOST_FOREACH (const std::string& str, strings)
{
...
}
Run Code Online (Sandbox Code Playgroud)
在第一个例子中是否存在BOOST_FOREACH可能最终getStrings()多次呼叫的危险?
我在JAR文件中有一个文件.1.txt例如,这是.
我该如何访问它?我的源代码是:
Double result=0.0;
File file = new File("1.txt")); //how get this file from a jar file
BufferedReader input = new BufferedReader(new FileReader(file));
String line;
while ((line = input.readLine()) != null) {
if(me==Integer.parseInt(line.split(":")[0])){
result= parseDouble(line.split(":")[1]);
}
}
input.close();
return result;
Run Code Online (Sandbox Code Playgroud) 我有一个计划任务(在固定延迟执行中运行),像这样开始:
executoreService.scheduleWithFixedDelay(repeatingThread, 0, numOfSeconds, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
在每个循环开始时,我检查设置文件中的更改,然后我想重新启动任务.设置文件还包含间隔的长度(numOfSeconds在上面的代码中).
目前,我使用以下代码重新启动任务:
executoreService.shutdownNow();
try {
while(!executoreService.awaitTermination(5, TimeUnit.SECONDS)){
logger.debug("awaiting termintation");
}
} catch (InterruptedException e) {
logger.debug("interrupted, continuing", e);
}
// initialize startup parameters
init();
// start the main scheduled timer
executoreService.scheduleWithFixedDelay(repeatingThread, 0, numOfSeconds, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
我不确定这些API调用.重启任务的推荐方法是什么(可能有新的延迟)?
我想询问用户是否同意继续启动任务,如何发出具有Yes,No按钮的确认窗口?
希望有人可以帮助我 - 我在网上搜索答案,但找不到 -
添加到UINavigationBar的UIBarButtonItem具有比所需更大的点击区域 - 例如,打开任何项目,你有一个带按钮的导航栏,点击按钮结尾和导航栏标题之间的任意位置 - 按钮点击,当你明显没有点击按钮时 -
也可以尝试这一点 - 点击导航栏下方,按钮下方,按钮点击导航栏下方约5个像素 -
我的问题是这个 -
我已经增加了一个自定义首部和按钮,用于一个tableview-但是当我点击标题中的按钮,所述按钮UINavigationBar的触发对那些5+像素代替按钮在tableview中报头 -
我做了一个测试,并从UINavigationBar中删除了按钮,有趣的是,对于导航栏下方的5个像素,即使导航栏中没有按钮,标题中的按钮也不会触发 -
它几乎像导航栏一样保留了低于其自身的5个像素作为点击空间 -
我的问题是这个 -
有人可以告诉我如何使导航栏没有为其按钮抓取额外的5+像素?
非常感谢 ;)
我在内存受限的环境中工作,需要动态创建字符串,但仍然没有占用堆内存.这是否有意义:
static char staticStringBuffer[10240];
static size_t staticStringWatermark = 0;
void createString( const char * something, const char * somethingElse ) {
char buf[1024];
strcat(buf, "test");
strcat(buf, something);
strcat(buf, somethingElse);
strcat(&staticStringBuffer[staticStringWatermark], buf);
staticStringWatermark += strlen(buf+1);
}
Run Code Online (Sandbox Code Playgroud)
这可能是编译,但我正在尝试理智 - 为堆内存牺牲静态内存?
谢谢你^ _ ^